# eric7.WebBrowser.Download.DownloadItem

Module implementing a widget controlling a download.

### Global Attributes

None

### Classes

DownloadItem | Class implementing a widget controlling a download.
DownloadState | Class implementing the various download states.

### Functions

None

## DownloadItem

Class implementing a widget controlling a download.

### Signals

downloadFinished(success)
  emitted when a download finished
progress(int, int)
  emitted to signal the download progress
statusChanged()
  emitted upon a status change of a download

### Derived from

QWidget, Ui_DownloadItem

### Class Attributes

None

### Class Methods

None

### Methods

DownloadItem | Constructor
__adjustSize | Private method to adjust the size of the download item.
__downloadProgress | Private slot to show the download progress.
__finished | Private slot to handle the download finished.
__getFileName | Private method to get the file name to save to from the user.
__initialize | Private method to initialize the widget.
__saveFileName | Private method to calculate a name for the file to download.
__setDateTime | Private method to set the download date and time.
__setFileLabels | Private slot to set and format the info label.
__setFileName | Private method to set the file name to save the download into.
__updateInfoLabel | Private method to update the info label.
absoluteFilePath | Public method to get the absolute path of the output file.
bytesReceived | Public method to get the number of bytes received.
bytesTotal | Public method to get the total number of bytes of the download.
cancelDownload | Public slot to stop the download.
canceledFileSelect | Public method to check, if the user canceled the file selection.
currentSpeed | Public method to get an estimation for the download speed.
downloadCanceled | Public method to check, if the download was cancelled.
downloadProgress | Public method to get the download progress.
downloadedSuccessfully | Public method to check for a successful download.
downloading | Public method to determine, if a download is in progress.
exists | Public method to check, if the downloaded file exists.
fileName | Public method to get the name of the output file.
getData | Public method to get the relevant download data.
getInfoData | Public method to get the text of the info label.
getPageUrl | Public method to get the URL of the download page.
on_openButton_clicked | Private slot to open the downloaded file.
on_pauseButton_clicked | Private slot to pause the download.
on_stopButton_clicked | Private slot to stop the download.
openFile | Public slot to open the downloaded file.
openFolder | Public slot to open the folder containing the downloaded file.
remainingTime | Public method to get an estimation for the remaining time.
setData | Public method to set the relevant download data.
setIcon | Public method to set the download icon.
updateButtonsAndLabels | Public method to update the buttons.

### Static Methods

None

#### DownloadItem (Constructor)

DownloadItem(downloadRequest=None, pageUrl=None, parent=None)

Constructor

downloadRequest (QWebEngineDownloadRequest)
  reference to the download object containing the download data.
pageUrl (QUrl)
  URL of the calling page
parent (QWidget)
  reference to the parent widget

#### DownloadItem.__adjustSize

__adjustSize()

Private method to adjust the size of the download item.

#### DownloadItem.__downloadProgress

__downloadProgress()

Private slot to show the download progress.

#### DownloadItem.__finished

__finished()

Private slot to handle the download finished.

#### DownloadItem.__getFileName

__getFileName()

Private method to get the file name to save to from the user.

#### DownloadItem.__initialize

__initialize()

Private method to initialize the widget.

#### DownloadItem.__saveFileName

__saveFileName(directory)

Private method to calculate a name for the file to download.

directory (str)
  name of the directory to store the file into

Return:
  proposed filename and original filename

Return Type:
  tuple of (str, str)

#### DownloadItem.__setDateTime

__setDateTime(dateTime=None)

Private method to set the download date and time.

dateTime (QDateTime)
  date and time to be set

#### DownloadItem.__setFileLabels

__setFileLabels()

Private slot to set and format the info label.

#### DownloadItem.__setFileName

__setFileName(fileName)

Private method to set the file name to save the download into.

fileName (str)
  name of the file to save into

#### DownloadItem.__updateInfoLabel

__updateInfoLabel()

Private method to update the info label.

#### DownloadItem.absoluteFilePath

absoluteFilePath()

Public method to get the absolute path of the output file.

Return:
  absolute path of the output file

Return Type:
  str

#### DownloadItem.bytesReceived

bytesReceived()

Public method to get the number of bytes received.

Return:
  number of bytes received

Return Type:
  int

#### DownloadItem.bytesTotal

bytesTotal()

Public method to get the total number of bytes of the download.

Return:
  total number of bytes

Return Type:
  int

#### DownloadItem.cancelDownload

cancelDownload()

Public slot to stop the download.

#### DownloadItem.canceledFileSelect

canceledFileSelect()

Public method to check, if the user canceled the file selection.

Return:
  flag indicating cancellation

Return Type:
  bool

#### DownloadItem.currentSpeed

currentSpeed()

Public method to get an estimation for the download speed.

Return:
  estimation for the download speed

Return Type:
  float

#### DownloadItem.downloadCanceled

downloadCanceled()

Public method to check, if the download was cancelled.

Return:
  flag indicating a canceled download

Return Type:
  bool

#### DownloadItem.downloadProgress

downloadProgress()

Public method to get the download progress.

Return:
  current download progress

Return Type:
  int

#### DownloadItem.downloadedSuccessfully

downloadedSuccessfully()

Public method to check for a successful download.

Return:
  flag indicating a successful download

Return Type:
  bool

#### DownloadItem.downloading

downloading()

Public method to determine, if a download is in progress.

Return:
  flag indicating a download is in progress

Return Type:
  bool

#### DownloadItem.exists

exists()

Public method to check, if the downloaded file exists.

Return:
  flag indicating the existence of the downloaded file

Return Type:
  bool

#### DownloadItem.fileName

fileName()

Public method to get the name of the output file.

Return:
  name of the output file

Return Type:
  str

#### DownloadItem.getData

getData()

Public method to get the relevant download data.

Return:
  dictionary containing the URL, save location, done flag, the URL of the related web page and the date and time of the download

Return Type:
  dict of {"URL": QUrl, "Location": str, "Done": bool, "PageURL": QUrl, "Downloaded": QDateTime}

#### DownloadItem.getInfoData

getInfoData()

Public method to get the text of the info label.

Return:
  text of the info label

Return Type:
  str

#### DownloadItem.getPageUrl

getPageUrl()

Public method to get the URL of the download page.

Return:
  URL of the download page

Return Type:
  QUrl

#### DownloadItem.on_openButton_clicked

on_openButton_clicked()

Private slot to open the downloaded file.

#### DownloadItem.on_pauseButton_clicked

on_pauseButton_clicked(checked)

Private slot to pause the download.

checked (bool)
  flag indicating the state of the button

#### DownloadItem.on_stopButton_clicked

on_stopButton_clicked()

Private slot to stop the download.

#### DownloadItem.openFile

openFile()

Public slot to open the downloaded file.

#### DownloadItem.openFolder

openFolder()

Public slot to open the folder containing the downloaded file.

#### DownloadItem.remainingTime

remainingTime()

Public method to get an estimation for the remaining time.

Return:
  estimation for the remaining time

Return Type:
  float

#### DownloadItem.setData

setData(data)

Public method to set the relevant download data.

data (dict of {"URL": QUrl, "Location": str, "Done": bool,)
  dictionary containing the URL, save location, done flag, the URL of the related web page and the date and time of the download "PageURL": QUrl, "Downloaded": QDateTime}

#### DownloadItem.setIcon

setIcon(icon)

Public method to set the download icon.

icon (QIcon)
  reference to the icon to be set

#### DownloadItem.updateButtonsAndLabels

updateButtonsAndLabels()

Public method to update the buttons.

Up

## DownloadState

Class implementing the various download states.

### Derived from

enum.Enum

### Class Attributes

Cancelled
Downloading
Successful

### Class Methods

None

### Methods

None

### Static Methods

None

Up